<?php


class SolicitudComprasController extends AppController 
{
	public $uses = array('SolicitudCompra','TipoStatu');	
	
	public function index()
	{
		$this->layout = 'default_ini';	
	}
	
	public function consult_solicitud_compra() 
	{
		$this->layout = 'default_ini';
		
		$this->set('fecha_inic', strtotime(date('Y-01-01')));
		$this->set('fecha_fin', strtotime(date('Y-12-31')));
		
		$this->llenar_combobox_tipo_status(1);
	}
	
	public function delete_compra($id_compra,$id_val)
	{
		
		if($id_comida == "")
		{
			$this->setMessageFlash(2, 'error $id_compra', null);
		}
		elseif ($id_val == "")
		{
			$this->setMessageFlash(2, 'error $id_val null', null);
		}
		else 
		{
			if($id_val == 1)
			{
				if($this->delete_single_comida($id_comida))
				{
					$this->setMessageFlash(1, 'Se borro el comida satisfactoriamente', null);
				}
				else 
				{
					$this->setMessageFlash(2,'No se pudo borrar la comida', null);
				}
			}
			elseif ($id_val == 2) 
			{
					
				if($this->length_arreglo_comida($id_comida) > 2)
				{
					$this->delete_multiples_comida($id_comida);
				}
				elseif ($this->length_arreglo_comida($id_comida) == 2) 
				{
					$comida = explode(',', $id_comida);
					if($this->delete_single_comida($comida[1]))
					{
						$this->setMessageFlash(1, 'Se borro el comida satisfactoriamente', null);
					}
					else 
					{
						$this->setMessageFlash(2, 'No se pudo borrar la comida', null);
					}
				}
				

			}
			else 
			{
				$this->setMessageFlash(2, 'error id_val', null);
			}
			
			//$this->redirect($this->referer());	
			
		}
	}
	
	
	public function getGridConsultCompra($sol_compra_id,$nombre_usuario,$tipo_status_id,$fecha_inic,$fecha_fin)
	{
		
		$this->layout = false;
		if ($this->request->is('get')) 
		{
			$this->llenar_compra($sol_compra_id,$nombre_usuario,$tipo_status_id,$fecha_inic,$fecha_fin);
			$this->render('/Elements/GridConsultCompra');
		}
		
	}
	public function getDetalleCompra($id_compra)
	{
		$this->layout = false;
		if ($this->request->is('get')) 
		{
			$this->llenar_info_compra(1, $id_compra);
			$this->render('/Elements/GetDetalleCompra');
		}
	}
	
	public function getEditCompra($id_compra)
	{
		$this->layout = false;
		
		if ($this->request->is('get')) 
		{
			$this->llenar_info_compra(2, $id_compra);
			$this->render('/Elements/GetEditCompra');
		}
		elseif ($this->request->is('post') || $this->request->is('put') )
		{
			
			$info_compra = array( 
										'SolicitudCompra'=> array(
																	'id' => $this->request->data['id'],
																	'tipo_status_id' => $this->request->data['tipo_status_id'],
																	'descripcion_solicitud' => $this->request->data['descripcion_solicitud']
																) 
										
									);

			
			
			$this->postEditCompra($info_compra);
		}
		
	}
	
	
	public function llenar_combobox_tipo_status($id_busq)
	{
		$status = $this->TipoStatu->find('all');
		$tipo_status = array();
		if ($id_busq == 1)
		{
			array_push($tipo_status, array( 0 => "Todos"));
		}
		foreach($status as $statu)
		{
			array_push($tipo_status,array($statu['TipoStatu']['id'] => $statu['TipoStatu']['nombre_tipo_status']));
		}		
		$this->set('tipo_status',$tipo_status);	
		
	}
	public function InfoConsultCompra($id_compra,$nombre_compra,$fecha_inic,$fecha_fin)
	{
		$detalle_compras = $this->SolicitudCompra->query(
															'SELECT *
																FROM solicitud_compras SC,
																detalle_solicitud_compras DSC,
																articulos A, users U,
																tipo_status TR
																WHERE DSC.solicitud_compra_id = SC.id
																AND DSC.articulo_id = A.id
																AND SC.persona_id = U.persona_id
																AND SC.tipo_status_id = TR.ID
																AND SC.id = '.$id_compra
														);
		$this->set('detalle_compras',$detalle_compras);
	}
	
	public function InfoEspecificoCompra($id_compra)
	{
		$detalle_compras = $this->SolicitudCompra->query(
															'SELECT *
																FROM solicitud_compras SC,
																detalle_solicitud_compras DSC,
																articulos A, users U,
																tipo_status TR
																WHERE DSC.solicitud_compra_id = SC.id
																AND DSC.articulo_id = A.id
																AND SC.persona_id = U.persona_id
																AND SC.tipo_status_id = TR.ID
																AND SC.id = '.$id_compra
														);
		$this->set('detalle_compras',$detalle_compras);
	}
	public function llenar_info_compra($id_busq, $id_compra)
	{
		if ($id_busq == 2)
		{
			$this->llenar_combobox_tipo_status(2);
		}
		$this->infoEspecificoCompra($id_compra);
	}
	
	private function postEditCompra($info_compra)
	{
		$this->SolicitudCompra->create();
		
		if ($this->SolicitudCompra->save($info_compra))
		{
			$this->setMessageFlash(1, 'Se guardo los cambios de la Solicitud de Compra', null);
			
		}
		else 
		{
			
			$this->setMessageFlash(2, 'No se guardo los cambios de la Solicitud de Compra', null);

		}
		$this->redirect(array(
									'controller' => 'SolicitudCompras',
									'action' => 'getEditCompra',$this->SolicitudCompra->id
							   )
						 );
	}
	
	
	private function setMessageFlash($id,$mensaje,$nombre_mensaje)
	{
		if (is_null($nombre_mensaje))
		{
			$nombre_mensaje = 'flash';
		}
		switch ($id) 
		{
			case 1: // mensaje bueno
				$this->Session->setFlash($mensaje,'default',array('class'=>'success'),$nombre_mensaje);
				break;
			case 2: // mensaje malo
				$this->Session->setFlash($mensaje,'default',array('class'=>'error-message'),$nombre_mensaje);
				break;
			case 3: // mensaje cuidado
				$this->Session->setFlash($mensaje,'default',array('class'=>'notice'),$nombre_mensaje);
				
				break;
			
			default:
				
				break;
		}
	}
	public function llenar_compra($sol_compra_id,$nombre_usuario,$tipo_status_id,$fecha_inic,$fecha_fin)
	{
		$date_desde = date('Y/m/d',$fecha_inic);
		$date_hasta = date('Y/m/d',$fecha_fin);

		$str_query = 'SELECT * 
						FROM solicitud_compras SC, 
						users U,
						personas P,
						tipo_status TR
						WHERE SC.persona_id = U.persona_id
						AND TR.id = SC.tipo_status_id
						AND P.id = U.persona_id';	
		
		if ($sol_compra_id != 0)
		{
			$str_query = $str_query.' AND SC.id = '.$sol_compra_id;
		}
		if ($nombre_usuario != '*')
		{
			$str_query = $str_query.' AND U.username LIKE "%'.$nombre_cuenta.'%"';
		}
		if ($tipo_status_id != 0)
		{
			$str_query = $str_query.' AND SC.tipo_status_id = '.$tipo_status_id;
		}
		
		
		$str_query = $str_query.' AND SC.fecha_solicitud_compra BETWEEN "'.$date_desde.'" AND "'.$date_hasta.'"';
		
		$str_query = $str_query . ' ORDER BY SC.id ASC ';
		
		$solicitud = $this->SolicitudCompra->query($str_query);
		
		$this->set('compras',$solicitud);
	}
}

?>